
$('#ordenCompraProducto_orden_compra_producto_cantidad, #ordenCompraProducto_producto').change(function () {
	actualizarDiarioProductoPrecio();
});

$("#ordenCompraPago_orden_compra_pago_subtotal").numeric();
$('#ordenCompraPago_orden_compra_pago_subtotal').keyup(function () {
    if($(this).val() !== ""){
       $('#agregarFormaPago').prop( "disabled", false);
   }else{
       $('#agregarFormaPago').prop( "disabled", true);
   }
});

$('#agregarFormaPago').click(function() {
    //todo ajax para ir a guardar forma de pago en orden de compra de session, todolo de abajo va adentro del done
    var dataString = "";

    $('#formOrdenCompraPago .form-control').each(function () {
        dataString += $(this).attr("name") + "=" + $(this).val() + "&";
    });
    var myUrl = Routing.generate('agregarFormaPagoSession');

    var ajax = $.ajax({
        type: "post",
        url: myUrl,
        context: document.body,
        data: dataString
    });

    ajax.done(function(){

        $('#formaPagoDetalle tbody').prepend("<tr><td>" + $('#ordenCompraPago_formaPago option:selected').text() + "</td><td>$ " + ajax.responseText + "</td></tr>");
        //Actualiza total de orden de compra
        var newTotal = Number($('#ordenCompra_orden_compra_total').val().substr(1)) + Number(ajax.responseText);
        $('#ordenCompra_orden_compra_total').val("$ "+newTotal);

        //Actualiza total Contado o Tarjeta
        var selectedFP = $('#ordenCompraPago_formaPago option:selected').text();

        if(selectedFP == "Efectivo" || selectedFP == "Débito")
        {
            var newContado = Number($('#ordenCompra_orden_compra_contado').val().substr(1)) + Number(ajax.responseText);
            $('#ordenCompra_orden_compra_contado').val("$ "+newContado);
        }else{
            var newTarjeta = Number($('#ordenCompra_orden_compra_tarjeta').val().substr(1)) + Number(ajax.responseText);
            $('#ordenCompra_orden_compra_tarjeta').val("$ "+newTarjeta);
        }

        $('#ordenCompraPago_orden_compra_pago_subtotal').val("");
        $(this).prop( "disabled", true);

        if(verifyOrdenCompra())
        {
            $('#guardarOrdenCompra').prop( "disabled", false );
        }
    });

});

$('#agregarProductoADetalle').click(function() {

    var newSubtotal = 0;
    $('#agregarProductoADetalle').prop( "disabled", true );
    var dataString = "";
	var myUrl = Routing.generate('agregarDiarioProductoSesion');
	$('#formOrdenCompraProducto .form-control').each(function () {
		dataString += $(this).attr("name") + "=" + $(this).val() + "&";
	});
    $('#productoSubtotal').val("agregando...");
	var ajax = $.ajax({
		type: "post",
        url: myUrl,
        context: document.body,
        data: dataString
	});
	
	ajax.done(function() {
		$('#ventaDetalle tbody').prepend(ajax.responseText);
		//$('#ventaDetalle tbody').prepend("<tr><td>" + $('#diarioProducto_products option:selected').text() + "</td><td>" + $('#diarioProducto_dUnidades').val() + "</td><td>" + $('#diarioProducto_dDescuento').val() + "</td><td>" + $('#diarioProducto_formaPago option:selected').text() + "</td><td>" + $('#diarioProducto_dSubtotal').val() + "</td></tr>");
		$("#ventaDetalle tr:odd").addClass("info");
		$('#formDiarioProducto').each(function(){
			this.reset();
		});
		actualizarDiarioProductoPrecio();

        $('#ventaDetalle #subt-prod').each(function () {
            newSubtotal += Number($(this).html().substr(1));
        });

        $('#subtotal').text("Subtotal: $ " + newSubtotal);
        if(verifyOrdenCompra())
        {
            $('#guardarOrdenCompra').prop( "disabled", false );
        }
	});


});

//This event is fired when the modal has been made visible to the user (will wait for CSS transitions to complete). If caused by a click, the clicked element is available as the relatedTarget property of the event.
$('#agregarOrdenCompraModal').on('shown.bs.modal', function (e) {
    console.log("Abriendo OrdenCompraModal....y si cargamos forms por ajax?");

    actualizarDiarioProductoPrecio();
    $('#agregarProductoADetalle').prop( "disabled", true );
    $('#guardarOrdenCompra').prop( "disabled", true );
    $('#agregarFormaPago').prop( "disabled", true);

    var myUrl = Routing.generate('createSessionOrdenCompra');

    var ajax = $.ajax({
        type: "post",
        url: myUrl,
        context: document.body
    });

    ajax.done(function(){
        //console.log(ajax.responseText);
    });

});

//This event is fired when the modal has finished being hidden from the user (will wait for CSS transitions to complete).
$('#agregarOrdenCompraModal').on('hidden.bs.modal', function (e) {
    resetAgregarOrdenCompraModal();
});

$('#guardarOrdenCompra').click(function(){
    var pagos = $('#formaPagoDetalle tbody >tr').size();

    if(!$('#selectCliente').prop("disabled") && pagos == 0)
    {
        $('#confirmarOCPendientePago').modal('show');
    }else{
        guardarOrdenCompra();
    }
});

$('#btnConfirmarOCPendientePago').click(function (){
    $('#confirmarOCPendientePago').modal('hide');
    guardarOrdenCompra();
});

function guardarOrdenCompra()
{
    $('#guardarOrdenCompra').prop( "disabled", true );
    $('#guardarOrdenCompra').html("Guardando...");
    $('#guardarOrdenCompra').removeClass('btn-success');
    $('#guardarOrdenCompra').addClass('btn-danger');

    var myUrl = Routing.generate('guardarOrdenCompra');

    if(!$('#selectCliente').prop("disabled"))
    {
        var dataString = "clienteId="+$('#selectCliente').val();
        var ajax = $.ajax({
            type: "post",
            url: myUrl,
            context: document.body,
            data: dataString
        });
    }else{
        var ajax = $.ajax({
            type: "post",
            url: myUrl,
            context: document.body
        });
    }

    ajax.done(function() {
        $('#ventaDetalle tbody >tr').each(function(){
            $(this).remove();
        });
        $('#guardarOrdenCompra').prop( "disabled", false );

        $('#agregarOrdenCompraModal').modal('hide');
        resetAgregarOrdenCompraModal();

        //aca llamar al modal
        $('#modalMensaje #modalMensajeText').text(ajax.responseText);
        $('#modalMensaje').modal('show');
    });
}

function actualizarDiarioProductoPrecio()
{
    $('#agregarProductoADetalle').prop( "disabled", true );
    $('#productoSubtotal').val("calculando...");
	var dataString = "";
	var myUrl = Routing.generate('actualizarDiarioProductoPrecio');
    dataString = $('#ordenCompraProducto_producto').attr("name")+ "=" + $('#ordenCompraProducto_producto').val() + "&";
    dataString += $('#ordenCompraProducto_orden_compra_producto_cantidad').attr("name")+ "=" + $('#ordenCompraProducto_orden_compra_producto_cantidad').val();
	var ajax = $.ajax({
		type: "post",
        url: myUrl,
        context: document.body,
        data: dataString
	});
	
	ajax.done(function() {
		$('#productoSubtotal').val("$ " + ajax.responseText);
        $('#agregarProductoADetalle').prop( "disabled", false );
	});
}

function verifyOrdenCompra()
{
    //este metodo verifica que haya al menos una fila en las tablas ventadetalle y formapagodetalle, devuelve boolean

    var ventas = $('#ventaDetalle tbody >tr').size();
    var pagos = $('#formaPagoDetalle tbody >tr').size();

    if($('#selectCliente').prop("disabled"))
    {
        if(ventas > 0 && pagos > 0)
        {
            return true;
        }else{
            return false;
        }
    }else{
        if(ventas > 0)
        {
            return true;
        }else{
            return false;
        }
    }
}

function resetAgregarOrdenCompraModal()
{
    $('#ventaDetalle tbody >tr').each(function(){
        $(this).remove();
    });

    $('#formaPagoDetalle tbody >tr').each(function(){
        $(this).remove();
    });

    $('#formOrdenCompraProducto, #formOrdenCompraPago, #formOrdenCompra').each(function(){
        this.reset();
    });

    $('#subtotal').text("Subtotal");

    //borra orden de compra temporal de la session
    var myUrl = Routing.generate('removeSessionOrdenCompra');

    var ajax = $.ajax({
        type: "post",
        url: myUrl,
        context: document.body
    });

    ajax.done(function(){
        //console.log(ajax.responseText);
    });

    $('#guardarOrdenCompra').html("Guardar");
    $('#guardarOrdenCompra').removeClass('btn-danger');
    $('#guardarOrdenCompra').addClass('btn-success');

    $('#quitarAgregarCliente').removeClass('btn-success');
    $('#quitarAgregarCliente').addClass('btn-warning');
    $('#quitarAgregarCliente').html("Quitar Cliente");
    $('#selectCliente').prop( "disabled", false);
}

$('#quitarAgregarCliente').click(function(){
    if(!$('#selectCliente').prop("disabled")){
        $('#quitarAgregarCliente').removeClass('btn-warning');
        $('#quitarAgregarCliente').addClass('btn-success');
        $('#quitarAgregarCliente').html("Agregar Cliente");
        $('#selectCliente').prop( "disabled", true);
    }else{
        $('#quitarAgregarCliente').removeClass('btn-success');
        $('#quitarAgregarCliente').addClass('btn-warning');
        $('#quitarAgregarCliente').html("Quitar Cliente");
        $('#selectCliente').prop( "disabled", false);
    }
});

$('#modalMensaje').on('hidden.bs.modal', function(e){
    $('#modalMensaje div:first-child div:first-child').removeClass();
    $('#modalMensaje div:first-child div:first-child').addClass('modal-content panel-success');

    $('#modalMensaje div:first-child div:first-child div:first-child').removeClass();
    $('#modalMensaje div:first-child div:first-child div:first-child').addClass('modal-header panel-success');

    $('#modalMensaje #modalMensajeText > p').removeClass();
    $('#modalMensaje #modalMensajeText > p').addClass('text-success');

//    location.reload(true);
});